package com.yonyou.cms.epc.client.dto.graphic;

import com.yonyou.cms.epc.client.dto.BaseDTO;
import com.yonyou.cms.epc.client.entity.file.FilePO;
import com.yonyou.cyx.framework.bean.entity.base.BasePO;
import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;

import java.io.Serializable;
import java.util.List;


/**
 * <p>
 *
 * </p>
 *
 * @author xh
 * @since 2022-06-09
 */

public class GraphicAssemblyInfoDTO extends BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**************主表信息*****************
     * 图解ID
     */
    private Integer graphicId;
    /**
     * 系统代码
     */
    private String systemCode;
    /**
     * 系统名称
     */
    private String systemName;
    /**
     * 车型代码
     */
    private String modelCode;
    /**
     * 车型名称
     */
    private String modelName;
    /**
     * 完成状态(默认0未完成，1已完成)
     */
    private Integer okstate;
    /**
     * 备注
     */
    private String remark;
    /**************主表信息结束*****************

    /**
     * 图解总成ID
     */
    private Integer assemblyId;
    /**
     * 热点编号
     */
    private String redianCode;
    /**
     * 代码
     */
    private String graphicCode;
    /**
     * 名称
     */
    private String graphicName;

    /**
     * 父级ID
     */
    private String parentId;
    /**
     * 三级代码
     */
    private String threeMenu;
    /**
     * 二级代码
     */
    private String twoMenu;
    /**
     * 一级代码
     */
    private String oneMenu;
    /**
     * 单元用量
     */
    private String unitAmount;
    /**
     * 层级（默认1级）
     */
    private Integer topLevel;
    /**
     * 是否备件代码
     */
    private Integer isSpare;
    /**
     * 对应的总称图片id
     */
    private String picSrc;
    /**
     * 备注
     */
    private String remarkAssembly;
    /**
     * 是否删除
     */
    private Boolean isDeleted;

    /**
     * 图片列表
     */
    private List<FilePO> picFiles;


    /**
     * 更新人信息
     */
    private Long userId;

    /**
     * 版本号
     */
    private Integer recordVersion;

    public String getSystemCode() {
        return systemCode;
    }

    public Integer getRecordVersion() {
        return recordVersion;
    }

    public void setRecordVersion(Integer recordVersion) {
        this.recordVersion = recordVersion;
    }

    public void setSystemCode(String systemCode) {
        this.systemCode = systemCode;
    }

    public String getSystemName() {
        return systemName;
    }

    public void setSystemName(String systemName) {
        this.systemName = systemName;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public Integer getOkstate() {
        return okstate;
    }

    public void setOkstate(Integer okstate) {
        this.okstate = okstate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRemarkAssembly() {
        return remarkAssembly;
    }

    public void setRemarkAssembly(String remarkAssembly) {
        this.remarkAssembly = remarkAssembly;
    }

    public GraphicAssemblyInfoDTO() {
        super();
    }

    public Integer getAssemblyId() {
        return assemblyId;
    }

    public void setAssemblyId(Integer assemblyId) {
        this.assemblyId = assemblyId;
    }

    public Integer getGraphicId() {
        return graphicId;
    }

    public String getParentId() {
        return parentId;
    }

    public String getGraphicCode() {
        return graphicCode;
    }

    public void setGraphicCode(String graphicCode) {
        this.graphicCode = graphicCode;
    }

    public String getGraphicName() {
        return graphicName;
    }

    public void setGraphicName(String graphicName) {
        this.graphicName = graphicName;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public void setGraphicId(Integer graphicId) {
        this.graphicId = graphicId;
    }

    public String getRedianCode() {
        return redianCode;
    }

    public void setRedianCode(String redianCode) {
        this.redianCode = redianCode;
    }


    public String getThreeMenu() {
        return threeMenu;
    }

    public void setThreeMenu(String threeMenu) {
        this.threeMenu = threeMenu;
    }

    public String getTwoMenu() {
        return twoMenu;
    }

    public void setTwoMenu(String twoMenu) {
        this.twoMenu = twoMenu;
    }

    public String getOneMenu() {
        return oneMenu;
    }

    public void setOneMenu(String oneMenu) {
        this.oneMenu = oneMenu;
    }

    public String getUnitAmount() {
        return unitAmount;
    }

    public void setUnitAmount(String unitAmount) {
        this.unitAmount = unitAmount;
    }

    public Integer getTopLevel() {
        return topLevel;
    }

    public void setTopLevel(Integer topLevel) {
        this.topLevel = topLevel;
    }

    public Integer getIsSpare() {
        return isSpare;
    }

    public void setIsSpare(Integer isSpare) {
        this.isSpare = isSpare;
    }

    public String getPicSrc() {
        return picSrc;
    }

    public void setPicSrc(String picSrc) {
        this.picSrc = picSrc;
    }

    public Boolean getDeleted() {
        return isDeleted;
    }

    public void setDeleted(Boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    public List<FilePO> getPicFiles() {
        return picFiles;
    }

    public void setPicFiles(List<FilePO> picFiles) {
        this.picFiles = picFiles;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    @Override
    public String toString() {
        return "GraphicAssemblyInfoDTO{" +
                "assemblyId=" + assemblyId +
                ", graphicId=" + graphicId +
                ", redianCode=" + redianCode +
                ", graphicCode=" + graphicCode +
                ", graphicName=" + graphicName +
                ", threeMenu=" + threeMenu +
                ", twoMenu=" + twoMenu +
                ", oneMenu=" + oneMenu +
                ", unitAmount=" + unitAmount +
                ", topLevel=" + topLevel +
                ", isSpare=" + isSpare +
                ", picSrc=" + picSrc +
                ", isDeleted=" + isDeleted +
                "}";
    }

    /**
     * 将DTO 转换为PO
     * //对某个对象属性进行赋值
     * //BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
     * @param poClass dto 需要转换的dto
     * @author yzy
     * @since 2018/7/22 0022
     */
    @Override
    public <T extends BasePO> T transDtoToPo(Class<T> poClass) {
        return super.transDtoToPo(poClass);
    }

    /**
     * 将DTO 转换为PO
     * BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
     * @param po 需要转换的对象
     * @author xh
     * @since 2018/7/22 0022
     */
    public <T extends BasePO> void transDtoToPo(T po) {
        BeanMapperUtil.copyProperties(this, po, "assemblyId");
    }

}
